home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / chargen.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  110 lines

  1. #
  2. # This script was written by Mathieu Perrin <mathieu@tpfh.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #T
  7.  
  8.  
  9. if(description)
  10. {
  11.  script_id(10043);
  12.  script_version ("$Revision: 1.19 $");
  13.  script_cve_id("CVE-1999-0103"); 
  14.  name["english"] = "Chargen";
  15.  name["francais"] = "Chargen";
  16.  script_name(english:name["english"], francais:name["francais"]);
  17.  
  18.     desc["english"] = "
  19. The remote host is running a 'chargen' service.
  20.  
  21. When contacted, chargen responds with some random characters (something
  22. like all the characters in the alphabet in a row). When contacted via UDP, it 
  23. will respond with a single UDP packet. When contacted via TCP, it will 
  24. continue spewing characters until the client closes the connection. 
  25.  
  26. The purpose of this service was to mostly to test the TCP/IP protocol
  27. by itself, to make sure that all the packets were arriving at their
  28. destination unaltered. It is unused these days, so it is suggested
  29. you disable it, as an attacker may use it to set up an attack against
  30. this host, or against a third party host using this host as a relay.
  31.  
  32. An easy attack is 'ping-pong' in which an attacker spoofs a packet between 
  33. two machines running chargen. This will cause them to spew characters at 
  34. each other, slowing the machines down and saturating the network.
  35.                      
  36. Solution : 
  37.  
  38. - Under Unix systems, comment out the 'chargen' line in /etc/inetd.conf 
  39.   and restart the inetd process
  40.  
  41. - Under Windows systems, set the following registry keys to 0 :
  42.   HKLM\System\CurrentControlSet\Services\SimpTCP\Parameters\EnableTcpChargen
  43.   HKLM\System\CurrentControlSet\Services\SimpTCP\Parameters\EnableUdpChargen
  44.   
  45.  Then launch cmd.exe and type :
  46.  
  47.    net stop simptcp
  48.    net start simptcp
  49.    
  50. To restart the service.
  51.  
  52.  
  53. Risk factor : Low";
  54.  
  55.  
  56.  script_description(english:desc["english"]);
  57.  
  58.  
  59.  summary["english"] = "Checks for the presence of chargen";
  60.  script_summary(english:summary["english"]);
  61.  
  62.  script_category(ACT_GATHER_INFO);
  63.  
  64.  script_copyright(english:"This script is Copyright (C) 1999 Mathieu Perrin");
  65.  
  66.  family["english"] = "Useless services";
  67.  family["francais"] = "Services inutiles";
  68.  script_family(english:family["english"], francais:family["francais"]);
  69.  script_dependencie("find_service.nes");
  70.  
  71.  exit(0);
  72. }
  73.  
  74. #
  75. # The script code starts here
  76. #
  77.  
  78. include("misc_func.inc");
  79. include("pingpong.inc");
  80.  
  81.  
  82.  
  83. if(get_port_state(19))
  84. {
  85.  p = known_service(port:19);
  86.  if(!p || p == "chargen")
  87.  {
  88.  soc = open_sock_tcp(19);
  89.  if(soc)
  90.   {
  91.     a = recv(socket:soc, length:255, min:255);
  92.     if(strlen(a) > 255)security_warning(19);
  93.     close(soc);
  94.   }
  95.  }
  96. }
  97.  
  98.         
  99. if(get_udp_port_state(19))
  100. {          
  101.  udpsoc = open_sock_udp(19);
  102.  data = string("\r\n");
  103.  send(socket:udpsoc, data:data);
  104.  b = recv(socket:udpsoc, length:1024);
  105.  if(strlen(b) > 255)security_warning(port:19,protocol:"udp");
  106.  
  107.  close(udpsoc);
  108. }
  109.  
  110.